1. Technical Field
The present invention relates to an improved data processing system, and in particular to a method, apparatus, and computer instructions for managing libraries. Still more particularly, the present invention provides a method, apparatus, and computer instructions for managing libraries on a compressed file system.
2. Description of Related Art
Data processing systems come in many different forms. Some data processing systems take the form of web servers and mainframes. On the other end of the spectrum are embedded computer system environments. Embedded systems typically do not take the form of a desktop computer. An embedded system is a combination of hardware and software that performs a specific function. This embedded system may be part of a computer or part of some other system that is not a computer. For example, an embedded system may be present in various devices, such as routers, biomedical appliances, cellular phones, personal digital assistants (PDAs), cameras, and camcorders.
In an embedded computer system environment, storage space is very limited. As a result, it is important to reduce the size of programs and data stored on those systems. File systems on embedded systems often use compression to save space. A file system is a mechanism for cataloging files in a computer.
One of the major consumers of space is the set of standard libraries, which provide a vast array of generic functions for applications. It is not unusual for these types of libraries to contain thousands of functions. Many of these functions, however, are not applicable, or are simply not used in a specific embedded system. As a result, a large amount of wasted space occurs in using these libraries.
Some techniques are currently available to minimize the waste of space with respect to libraries. These existing techniques include creating or rebuilding the library with only the required functions being included in the library. Another technique involves physically removing the unused functions in a library, compacting the library, and then readjusting a symbol table for the library.
Although these two techniques reduce the space required for a library, they both have drawbacks. Rebuilding a library requires that the source code for the library functions be available. In many cases, source codes for libraries are not provided or are hard to find. Having the source code available also requires that the library source code be kept under source code control to maintain quality control. Rebuilding also requires additional compilation time. The second technique requires readjustment of the symbol table or tables to accommodate the new locations of the remaining functions. Although such a task can be accomplished, this process is cumbersome, error prone and makes debugging more complex.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for managing a library in a manner to reduce the space required to store a library in a data processing system.